package com.sz.mes.entity;

import java.util.Date;
import java.lang.Double;
import java.math.BigDecimal;
import javax.validation.constraints.NotNull;

import com.fasterxml.jackson.annotation.JsonFormat;
import org.hibernate.validator.constraints.Length;
import java.util.List;
import com.baomidou.mybatisplus.annotation.*;
import com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler;
import com.sz.mes.entity.BaseCustomEntity;
import com.diboot.core.binding.query.BindQuery;
import com.diboot.core.binding.query.Comparison;
import com.diboot.core.util.D;
import lombok.Getter;
import lombok.Setter;
import lombok.experimental.Accessors;

/**
* 供应商 Entity定义
* @author hem
* @version 1.0
* @date 2023-04-04
* Copyright © szhs
*/
@Getter @Setter @Accessors(chain = true)
@TableName("supplier")
public class Supplier extends BaseCustomEntity {
    private static final long serialVersionUID = -2808897450035337908L;

    /**
    * 创建人 
    */
    @TableField(fill = FieldFill.INSERT)
    private Long createBy;

    /**
    * 更新人 
    */
    @TableField(fill = FieldFill.UPDATE)
    private Long updateBy;

    /**
    * 更新时间 
    */
    @TableField(fill = FieldFill.UPDATE)
    private Date updateTime;

    /**
    * 供应商名称 
    */
    @Length(max=100, message="供应商名称长度应小于100")
    @TableField()
    private String supplierName;

    /**
    * 供应商编号 
    */
    @Length(max=100, message="供应商编号长度应小于100")
    @TableField()
    private String supplierCode;

    /**
    * 税号 
    */
    @Length(max=100, message="税号长度应小于100")
    @TableField()
    private String ein;

    /**
    * 是否是客户 1，是 0，否 
    */
    @TableField()
    private Boolean isCustomer;

    /**
    * 是否是供应商 1、是 0、否 
    */
    @TableField()
    private Boolean isSupplier;

    /**
    * 默认开票 1、是 0、否 
    */
    @TableField()
    private Boolean defaultMakeInvoice;

    /**
    * 供应商类型id 
    */
    @TableField()
    private Long supplierTypeId;

    /**
    * 业务员id 
    */
    @TableField()
    private Long salemanId;

    /**
    * 业务员名字 
    */
    @Length(max=100, message="业务员名字长度应小于100")
    @TableField()
    private String salemanName;

    /**
    * 开户名称 
    */
    @Length(max=100, message="开户名称长度应小于100")
    @TableField()
    private String accountName;

    /**
    * 默认税率 
    */
    @Length(max=100, message="默认税率长度应小于100")
    @TableField()
    private String defaultRate;

    /**
    * 联系人 
    */
    @Length(max=100, message="联系人长度应小于100")
    @TableField()
    private String contact;

    /**
    * 部门id 
    */
    @TableField()
    private Long deptId;

    /**
    * 邮箱 
    */
    @Length(max=100, message="邮箱长度应小于100")
    @TableField()
    private String email;

    /**
    * 企业性质。1，国有企业 2，集体企业 3，有限责任公司 4，股份有限 5，个人客户 6，私有企业 7，民营企业 
    */
    @Length(max=100, message="企业性质。1，国有企业 2，集体企业 3，有限责任公司 4，股份有限 5，个人客户 6，私有企业 7，民营企业长度应小于100")
    @TableField()
    private String enterpriseNature;

    /**
    * 公司网址 
    */
    @Length(max=100, message="公司网址长度应小于100")
    @TableField()
    private String comWebSite;

    /**
    * 供应商级别。1，特别重要 2，普通 3，重要 
    */
    @Length(max=100, message="供应商级别。1，特别重要 2，普通 3，重要长度应小于100")
    @TableField()
    private String supplierLevel;

    /**
    * 备注 
    */
    @Length(max=100, message="备注长度应小于100")
    @TableField()
    private String remark;

    /**
    * 销售级别。1,零售单价 2,一级单价 3,二级单价 4,三级单价 5,四级单价 6,五级单价 7，最近一次价格 8，供应商报价(采购) 
    */
    @Length(max=100, message="销售级别。1,零售单价 2,一级单价 3,二级单价 4,三级单价 5,四级单价 6,五级单价 7，最近一次价格 8，供应商报价(采购)长度应小于100")
    @TableField()
    private String salesLevel;

    /**
    * 供应商状态 
    */
    @Length(max=100, message="供应商状态长度应小于100")
    @TableField()
    private String supplierStatus;

    /**
    * 联系电话 
    */
    @Length(max=100, message="联系电话长度应小于100")
    @TableField()
    private String contactPhone;

    /**
    * 开户银行 
    */
    @Length(max=100, message="开户银行长度应小于100")
    @TableField()
    private String bank;

    /**
    * 城市 
    */
    @Length(max=100, message="城市长度应小于100")
    @TableField()
    private String city;

    /**
    * 公司电话 
    */
    @Length(max=100, message="公司电话长度应小于100")
    @TableField()
    private String companyPhone;

    /**
    * 省份 
    */
    @Length(max=100, message="省份长度应小于100")
    @TableField()
    private String province;

    /**
    * 银行账户 
    */
    @Length(max=100, message="银行账户长度应小于100")
    @TableField()
    private String bankAccount;

    /**
    * 结算币种。1，人民币 2，美元 3，欧元 4，卢布 
    */
    @Length(max=100, message="结算币种。1，人民币 2，美元 3，欧元 4，卢布长度应小于100")
    @TableField()
    private String settlementCurrency;

    /**
    * 地址 
    */
    @Length(max=100, message="地址长度应小于100")
    @TableField()
    private String address;


} 
